package com.woniu.sharepark.leasesystem.tenant.dao;

import com.woniu.sharepark.leasesystem.tenant.pojo.Complaint;
import com.woniu.sharepark.leasesystem.tenant.vo.ComplaintVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 投诉信息数据访问层接口
 * @author xin
 * @date 2019/6/1 12:31
 */
public interface ComplaintDAO {
    /**
    * 通过主键删除投诉信息
    * @title deleteByPrimaryKey
    * @param coId 主键id
    * @return: int
    * @author xin
    * @date 2019/6/1 12:32
    */
    int deleteByPrimaryKey(Integer coId);

    /**
    * 插入投诉信息
    * @title insert
    * @param record 投诉信息
    * @return: int
    * @author xin
    * @date 2019/6/1 12:32
    */
    int insert(Complaint record);

    /**
    * 动态插入投诉信息
    * @title insertSelective
    * @param record 投诉信息
    * @return: int
    * @author xin
    * @date 2019/6/1 12:32
    */
    int insertSelective(Complaint record);

    /**
    * 通过主键查询投诉信息
    * @title selectByPrimaryKey
    * @param coId 主键id
    * @return: com.woniu.sharepark.pojo.Complaint
    * @author xin
    * @date 2019/6/1 12:33
    */
    Complaint selectByPrimaryKey(Integer coId);

    /**
    * 通过主键动态修改投诉信息
    * @title updateByPrimaryKeySelective
    * @param record 投诉信息
    * @return: int
    * @author xin
    * @date 2019/6/1 12:33
    */
    int updateByPrimaryKeySelective(Complaint record);

    /**
    * 修改投诉信息
    * @title updateByPrimaryKey
    * @param record 投诉信息
    * @return: int
    * @author xin
    * @date 2019/6/1 12:33
    */
    int updateByPrimaryKey(Complaint record);

    /**
    * 根据被投诉方id分页查询投诉信息
    * @title queryComplaintByPage
    * @param currentPage
     * @param pageSize
     * @param complaintVO
    * @return java.util.List
    * @author litong
    * @date 2019/6/5 19:57
    **/
    List queryComplaintByPage(@Param(value = "currentPage")Integer currentPage,@Param(value = "pageSize")Integer pageSize,@Param(value = "complaintVO") ComplaintVO complaintVO);

    /**
    *
    * @title addComplaint
    * @param complaint
    * @return void
    * @author litong
    * @date 2019/6/10 9:38
    **/
    void addComplaint(Complaint complaint);

    /**
    * 根据主键投诉id处理投诉
    * @title disposeComplaint
    * @param coId
    * @return void
    * @author litong
    * @date 2019/6/10 9:49
    **/
    int disposeComplaint(Integer coId);

    /**
    * 根据被投诉方id和投诉状态查询该用户被投诉条数
    * @title selectCountOfComplaint
    * @param complaintVO
    * @return java.lang.Integer
    * @author litong
    * @date 2019/6/10 10:02
    **/
    Integer selectCountOfComplaint(ComplaintVO complaintVO);

    /**
    *
    * @title selectComplaintByONumber
    * @param oNumber
    * @return com.woniu.sharepark.leasesystem.tenant.pojo.Complaint
    * @author litong
    * @date 2019/6/21 17:39
    **/
    Complaint selectComplaintByONumber(String oNumber);
}